local M = {}

-- 用当前光标下单词进行 Leaderf ripgrep 搜索
function M.search_current_word()
  local word = vim.fn.expand("<cword>")
  vim.cmd("Leaderf! rg " .. vim.fn.shellescape(word) .. vim.fn.getcwd())
end

-- 精确匹配单词（-w 参数）
function M.search_current_word_wordwise()
  local word = vim.fn.expand("<cword>")
  vim.cmd("Leaderf! rg -w " .. vim.fn.shellescape(word) .. vim.fn.getcwd())
end

function M.print_on_terminal()
    -- 获取可视模式选区的起始和结束位置
    local start_pos = vim.fn.getpos("'<")
    local end_pos = vim.fn.getpos("'>")
    -- 提取行号（第2个元素是行号）
    local start_line = start_pos[2]
    local end_line = end_pos[2]
    -- 确保行号顺序正确（支持反向选择）
    if start_line > end_line then
        start_line, end_line = end_line, start_line
    end
    -- 获取当前文件绝对路径（需文件已保存）
    local file_path = vim.fn.expand('%:p')
    if file_path == '' then
        vim.api.nvim_err_writeln("Error: File not saved")
        return
    end
    -- 构建 sed 命令（使用行号范围）
    local sed_cmd = string.format(
        "sed -n '%d,%d p' %s",
        start_line,
        end_line,
        vim.fn.shellescape(file_path)
    )
    -- 直接执行外部命令并暂停显示输出
    vim.cmd(string.format('!%s', sed_cmd))
end

return M

